It is becoming more common to share hardware platforms among applications. It is further becoming more common to separate computer hardware and applications by virtualizing the hardware. Such solutions may be described as shared environments, clouds, computer clouds, virtual environments, computer centers, hosting environments, or similar.
A shared environment may be created in different ways. An example of a structure is an application operating on an operating system, with the operating system running on a virtual machine. Compared with a single standalone solution may the virtual machine replace the physical hardware seen from the application or operating system perspective. A number of virtual machines may be operated on the same physical hardware. Virtual machines serving the same type of application may be relocated or parallelized between different physical hardware's depending on the applications needs or characteristics, such as availability, performance or capacity.
The virtual machine may be controlled by a hypervisor, where the hypervisor locally may manage the virtual machine on the physical hardware. The hypervisor may for example in a controlled way provide or allocate resources for the virtual machine such as bandwidth, CPU power (Central Processing Unit), memory capacity, or storage capacity. A single physical machine including all its software may sometimes be denoted a host.
On a higher level the hypervisor may be controlled by a resource manager or a cloud manager. The resource manager may control and instruct the hypervisor. The resource manager may for example have control over which applications that should be operated on which host, prioritization, start and stop of hosts.
There are obvious benefits with shared environments, such as the possibility of a plurality of applications sharing the same hardware, sharing functions such as databases, antivirus protection, firewalls, etc., which may be costly to maintain. Not at least to mention a descent physical environment with shell protection, cooling and constant electricity supply.
However, there are problems with the existing solutions for shared environments, clouds and similar computer center solutions. A problem is an increasing energy need with the growing shared environments, because both the computers themselves as well as the cooling for them require substantial energy supply. It may be desired to be able to turn off machines which not are used. Another problem is to gather adequate information about how to set up and manage applications running in a shared environment, depending on SLA's (Service Level Agreement) and resource demands. The structure in a shared environment may be complex and difficult to review.